package com.crm.service.customerManager;

import com.crm.model.entity.contactManager.Contact;
import com.crm.model.entity.customerManager.*;
import com.crm.model.qo.customerManager.CustomerPoolQO;
import com.crm.model.qo.customerManager.SendCodeQO;
import com.crm.model.vo.cluePoolManager.UserCompanyVO;
import com.crm.model.vo.customerManager.*;

import java.util.List;

/**
 * @ Author ：baijian
 * @ Date   ：2021/8/7 16:05
 */
public interface CustomerSendCodeDbService {

    /**
     * 会员卡信息
     * @param sendCodeQO 发码参数
     * @return
     */
    List<DetailMemberCardVO> customerProductDetailMemberCardList(SendCodeQO sendCodeQO);

    /**
     * 税法直通车
     * @param sendCodeQO 发码参数
     * @return
     */
    List<CustomerProductDetailThroughTrainTaxVO> customerProductDetailThroughTrainTaxList(SendCodeQO sendCodeQO);

    /**
     * 兑换码信息
     * @param sendCodeQO 发码参数
     * @return
     */
    List<CustomerProductDetailExchangeCodeVO> customerProductDetailExchangeCodeList(SendCodeQO sendCodeQO);

    /**
     * 云顾问卡信息
     * @param sendCodeQO 发码参数
     * @return
     */
    List<CustomerProductDetailYunVO> customerProductDetailYunList(SendCodeQO sendCodeQO);

    /**
     * 充值卡
     * @param sendCodeQO 发码参数
     * @return
     */
    List<CustomerProductDetailRechargeCodeVO> customerProductDetailRechargeCodeList(SendCodeQO sendCodeQO);

    /**
     * 优惠劵
     * @param sendCodeQO 发码参数
     * @return
     */
    List<CustomerProductDetailCouponVO> customerProductDetailCouponList(SendCodeQO sendCodeQO);

    /**
     * 兑换码通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailExchangeCode> customerProductDetailExchangeCodeByProductCodeList(String productOrderId,String finishOrderProductNum);

    /**
     * 税法直通车通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailThroughTrainTax> customerProductDetailThroughTrainTaxByProductCodeList(String productOrderId, String finishOrderProductNum);

    /**
     * 会员卡通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailMemberCard> customerProductDetailMemberCardByProductCodeList(String productOrderId, String finishOrderProductNum);

    /**
     * 云顾问卡通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailYun> customerProductDetailYunByProductCodeList(String productOrderId, String finishOrderProductNum);

    /**
     * 充值卡通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailRechargeCode> customerProductDetailRechargeCodeByProductCodeList(String productOrderId, String finishOrderProductNum);

    /**
     * 优惠劵通过订单id和产品
     * @param productOrderId 订单编号
     * @param finishOrderProductNum 产品号
     * @return
     */
    List<CustomerProductDetailCoupon> customerProductDetailCouponByProductCodeList(String productOrderId, String finishOrderProductNum);

    /**
     * 修改兑换码删除状态
     * @param vo 兑换码
     * @return
     */
    Boolean updateCustomerProductDetailExchangeCode(CustomerProductDetailExchangeCode vo);

    /**
     * 修改税法直通车删除状态
     * @param vo
     * @return
     */
    Boolean updateCustomerProductDetailThroughTrainTax(CustomerProductDetailThroughTrainTax vo);

    /**
     * 修改会员卡删除状态
     * @param vo
     * @return
     */
    Boolean updateCustomerProductDetailMemberCard(CustomerProductDetailMemberCard vo);

    /**
     * 修改云顾问卡删除状态
     * @param vo
     * @return
     */
    Boolean updateCustomerProductDetailYun(CustomerProductDetailYun vo);

    /**
     * 修改充值卡删除状态
     * @param vo
     * @return
     */
    Boolean updateCustomerProductDetailRechargeCode(CustomerProductDetailRechargeCode vo);

    /**
     * 修改优惠劵删除状态
     * @param vo
     * @return
     */
    Boolean updateCustomerProductDetailCoupon(CustomerProductDetailCoupon vo);
}
